#!/usr/bin/python3
""""""

#运算符
#算术运算符
"""
    以下假设变量 a=10，变量 b=21：
    +	加 - 两个对象相加	a + b 输出结果 31
    -	减 - 得到负数或是一个数减去另一个数	a - b 输出结果 -11
    *	乘 - 两个数相乘或是返回一个被重复若干次的字符串	a * b 输出结果 210
    /	除 - x 除以 y	b / a 输出结果 2.1
    %	取模 - 返回除法的余数	b % a 输出结果 1
    **	幂 - 返回x的y次幂	a**b 为10的21次方
    //	取整除 - 往小的方向取整数	>>> 9//2
    4 >>> -9//2 -5
"""

# 赋值运算符
"""
    以下假设变量a为10，变量b为20：
    =	简单的赋值运算符	c = a + b 将 a + b 的运算结果赋值为 c
    +=	加法赋值运算符	c += a 等效于 c = c + a
    -=	减法赋值运算符	c -= a 等效于 c = c - a
    *=	乘法赋值运算符	c *= a 等效于 c = c * a
    /=	除法赋值运算符	c /= a 等效于 c = c / a
    %=	取模赋值运算符	c %= a 等效于 c = c % a
    **=	幂赋值运算符	c **= a 等效于 c = c ** a
    //=	取整除赋值运算符	c //= a 等效于 c = c // a
    :=	海象运算符，这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增运算符。	
    在这个示例中，赋值表达式可以避免调用 len() 两次:

    if (n := len(a)) > 10:
        print(f"List is too long ({n} elements, expected <= 10)")
"""

#比较运算符（关系运算符）
""" 
    *** != 比较运算符会根据操作对象的类型和具体实现，对对象进行不同方式的比较，以判断它们是否不相等 
    *** 实际上是调用  __eq__() / __ne__()
    以下假设变量 a 为 10，变量 b 为20：
    ==	等于 - 比较对象是否相等	(a == b) 返回 False。
    !=	不等于 - 比较两个对象是否不相等	(a != b) 返回 True。
    >	大于 - 返回x是否大于y	(a > b) 返回 False。
    <	小于 - 返回x是否小于y。所有比较运算符返回1表示真，返回0表示假。这分别与特殊的变量True和False等价。注意，这些变量名的大写。	(a < b) 返回 True。
    >=	大于等于 - 返回x是否大于等于y。	(a >= b) 返回 False。
    <=	小于等于 - 返回x是否小于等于y。	(a <= b) 返回 True。
"""

#逻辑运算符
"""
    Python语言支持逻辑运算符，以下假设变量 a 为 10, b为 20:
    and	    x and y	布尔"与" - 如果 x 为 False，x and y 返回 x 的值，否则返回 y 的计算值。	(a and b) 返回 20。
    or	    x or y	布尔"或" - 如果 x 是 True，它返回 x 的值，否则它返回 y 的计算值。	(a or b) 返回 10。
    not	    not x	布尔"非" - 如果 x 为 True，返回 False 。如果 x 为 False，它返回 True。	not(a and b) 返回 False
"""

#成员运算符
"""
    测试实例中包含了一系列的成员，包括字符串，列表或元组 in / not in 
    a = 10
    b = 20
    a in [1,2,3,4,5,6,7]
    a not [1,2,3,4,5,6,7]
"""

#身份运算符 is / is not
"""
    在 Python 中，身份运算符 is 和 is not 用于比较两个对象的身份，也就是判断它们是否指向同一个内存地址
    a = [1, 2, 3]
    b = a  # b 指向与 a 相同的对象
    c = [1, 2, 3]  # c 是一个新的对象，虽然值与 a 相同
    print(a is b)  # 输出: True，因为 a 和 b 指向同一个对象
    print(a is c)  # 输出: False，因为 a 和 c 是不同的对象，只是值相同
"""




a = 10
b = 20

if (a and b):
    print("1 - 变量 a 和 b 都为 true")
else:
    print("1 - 变量 a 和 b 有一个不为 true")

if [] != True :
    print("not [] is true")

if (a or b):
    print("2 - 变量 a 和 b 都为 true，或其中一个变量为 true")
else:
    print("2 - 变量 a 和 b 都不为 true")

# 修改变量 a 的值
a = 0
if (a and b):
    print("3 - 变量 a 和 b 都为 true")
else:
    print("3 - 变量 a 和 b 有一个不为 true")

if (a or b):
    print("4 - 变量 a 和 b 都为 true，或其中一个变量为 true")
else:
    print("4 - 变量 a 和 b 都不为 true")

if not (a and b):
    print("5 - 变量 a 和 b 都为 false，或其中一个变量为 false")
else:
    print("5 - 变量 a 和 b 都为 true")


#成员运算符  测试实例中包含了一系列的成员，包括字符串，列表或元组

a = 10
b = 20
list = [1, 2, 3, 4, 5]

if (a in list):
    print("1 - 变量 a 在给定的列表中 list 中")
else:
    print("1 - 变量 a 不在给定的列表中 list 中")

for x in "abcdefg":  #abcdefg
    print(x)

for x in [1,2,3,4,5,6,7]: #1234567
    print(x)

for index, x in enumerate([1,2,3,4,5,6,7]): #0 1 / 1 2 / 2 3 / 3 4 / 4 5 / 5 6 / 6 7
    print(index, x)

for i in range(1, 10): #123456789
    print(i)

for i in range(10): #0123456789
    print(i)

for i in range(1, 10, 2): #13579
    print(i)

print("\n-------------------")
s1, s2 = 0, 1
while s2 < 1000:
    #print(s1, end=',') # >>>   0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,
    s1, s2 = s2, s1+s2
    print(f"s1={s1}, s2 = {s2}")  # >>>   1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

print("\n-------------------")

count = 1
while count <= 10:
    count += 1
    print("计数器开始计数", count)

count2 = 1
while count2 <= 10:
    if count2 == 5:
        subCount = count2 - 5
        print("走入五步陷阱,跳出")
        break
    count2 += 1
    print(count2)

score = input("请输入具体分数：")
if not score.isdigit():
    print("分数非法")
elif float(score) == 100:
    print("满分，继续保持")
elif float(score) >= 90:
    print("90分，很棒")
else:
    print("再接再厉")

for i in range(10):
    print(i)

print("========================")

for i in range(1, 10):
    print(i)

print("===========================九九乘法表=============================")
for i in range(1, 10):
    for j in range(1, 10):
        if j <= i:
            print(f"{j}*{i}={i*j:<2}", end=" ")
    print()
print("================================================================")